/**
 * 
 */
package ar.com.gepp.torneo.entidades.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import ar.com.gepp.torneo.comparators.PosicionComparator;

/**
 * @author gpidote
 * 
 */
public class Grupo {
	Integer idEdicion;
	List<Posicion> equipos = new ArrayList<Posicion>(0);
	Fixture fix;
	Boolean idaVuelta;

	public Integer getIdEdicion() {
		return idEdicion;
	}

	public void setIdEdicion(Integer idEdicion) {
		this.idEdicion = idEdicion;
	}

	public List<Posicion> getEquipos() {
		return equipos;
	}

	public void setEquipos(List<Posicion> equipos) {
		this.equipos = equipos;
	}

	public Fixture getFix() {
		return fix;
	}

	public void setFix(Fixture fix) {
		this.fix = fix;
	}

	public Boolean getIdaVuelta() {
		return idaVuelta;
	}

	public void setIdaVuelta(Boolean idaVuelta) {
		this.idaVuelta = idaVuelta;
	}

	public void jugarFechaActual() {
		Fecha fechaActual = getFix().getFechaActual();
		getFix().jugarFechaActual();
		// Lista de partidos
		List<Partido> partidos = fechaActual.getPartidos();
		for (Partido partido : partidos) {
			for (Posicion posicion : getEquipos()) {
				if (posicion.getEquipo().equals(partido.getLocal())) {
					posicion.sumarPartido(partido.getPuntosLocal(), partido.getGolLocal(), partido.getGolVisitante());
				}
				if (posicion.getEquipo().equals(partido.getVisitante())) {
					posicion.sumarPartido(partido.getPuntosVisitante(), partido.getGolVisitante(), partido.getGolLocal());
				}
			}
		}
		Collections.sort(equipos, new PosicionComparator());
	}

	public Boolean finalizada() {
		return fix.finalized();
	}

	public Posicion getPosicion(int i) {
		return equipos.get(i);
	}

}